// 对服务器数据API进行二次封装
// uni-app小程序里面用class $http做导出是无效的
export let BaseURL = 'https://www.codeboy.com/zhsqapi/'
/** 
 * 用户注册
 * 接口地址：user/register
 * 请求方式：post
 */

let register = async (phone, pwd) => {
	let [res, err] = await uni.request({
		url: BaseURL + 'user/register',
		method: "POST"
	})
}

/**
 * 用户登录
 * 接口地址：user/login
 * post
 */
export let login = async (phone, pwd) => {
	uni.showLoading({
		title: '登录中'
	})
	let [err, res] = await uni.request({
		url: BaseURL + 'user/login',
		method: 'POST',
		// header:{'Content-Type':'application/json'},   默认请求头 json格式
		// header:{'Content-Type':'application/x-www-form-unlencoded'},   设置成键值对格式，以&相连
		// 请求主体设置为对象形式，会自动根据content-type头转换为需要的数据格式
		data: {
			phone,
			pwd
		}
	})
	uni.hideLoading()
	if (err) {
		return {
			code: 5000,
			msg: 'request failed'
		}
	} else {
		return res.data
	}
}

/**
 * 接口地址：user/profile
	请求方式：GET
	请求主体：无
	请求头部：token| athorization
 */

export let userProfile = async () => {
	uni.showLoading({
		title: '正在加载中',
	})
	let [err, res] = await uni.request({
		url: BaseURL + 'user/profile',
		header: {
			token: uni.getStorageSync('userToken') // 读取本地存储数据，以请求头部的方式发送给服务器
		}
	})
	uni.hideLoading()
	if (err) {
		return {
			code: 5000,
			msg: 'request failed'
		}
	} else {
		return res.data
	}
}

/**
 * 首页数据
 * 接口地址：index/data
请求方式：GET
请求主体：无
请求参数：无
请求头部：token

 */

export let indexData = async () => {
	uni.showLoading({
		title: '正在加载中',
	})
	let [err, res] = await uni.request({
		url: BaseURL + 'index/data',
		header: {
			token: uni.getStorageSync('userToken')
		}
	})
	uni.hideLoading()
	if (err) {
		return {
			code: 5000,
			msg: 'request failed'
		}
	} else {
		return res.data
	}
}

/**
 * 用户待缴费总汇
 * 接口地址：fee/list
请求方式：GET
请求主体：无
请求参数：无
请求头部：token
响应主体格式：json object；
 */

export let feeList = async () => {
	uni.showLoading({
		title: '正在加载中',
	})
	let [err, res] = await uni.request({
		url: BaseURL + 'fee/list',
		header: {
			token: uni.getStorageSync('userToken')
		}
	})
	uni.hideLoading()
	if (err) {
		return {
			code: 5000,
			msg: 'request failed'
		}
	} else {
		return res.data
	}
}

/**
 * 当前登录用户缴费记录
 * 接口地址：fee/record
请求方式：GET
请求主体：无
请求参数：type - 费用的类型；  
			startTime - 缴费开始时间（时间戳数字）；
			endTime - 缴费结束时间（时间戳数字）；
请求头部：token - 用户登录后保存在客户端身份凭证

 */
export let feeRecord = async (type = 0, startTime = 0, endTime = 0) => {
	uni.showLoading({
		title: '查询记录中'
	})
	let [err, res] = await uni.request({
		url: BaseURL + `fee/record?type=${type}&startTime=${startTime}&endTime=${endTime}`,
		header: {
			token: uni.getStorageSync('userToken')
		}
	})
	uni.hideLoading()
	if (err) {
		return {
			code: 5000,
			msg: 'request failed'
		}
	} else {
		return res.data
	}
}

/**
 * 获得指定类型收费所对应的收费单位
 * 接口地址：fee/collector
请求方式：GET
请求主体：无
请求示例：fee/collector?type=2
 */

export let feeCollector = async type => {
	uni.showLoading({
		title: '数据查询中'
	})
	let [err, res] = await uni.request({
		url: BaseURL + 'fee/collector?type=' + type
	})
	uni.hideLoading()
	if (err) {
		return {
			code: 5000,
			msg: 'request failed'
		}
	} else {
		return res.data
	}
}

/**
 * 根据业主编号查询该业主基本信息
 * 接口地址：household/query
请求方式：GET
请求主体：无
请求示例：household/query?hhid=S60011
前端对此接口的请求需要防抖，时间间隔在2s以上

 */

export let householdQuery = async hhid => {
	uni.showLoading({
		title: '用户信息查询中'
	})
	let [err, res] = await uni.request({
		url: BaseURL + 'household/query?hhid=' + hhid
	})
	uni.hideLoading()
	if (err) {
		return {
			code: 5000,
			msg: 'request failed'
		}
	} else {
		return res.data
	}
}

/**
 * 缴费
 * 接口地址：fee/add
请求方式：POST
请求主体格式：application/json
请求头部：token

 */

export let feeAdd = async (type, collectorId, householdId, amount) => {
	uni.showLoading({
		title: '处理中'
	})
	let [err, res] = await uni.request({
		url: BaseURL + 'fee/add',
		method: "POST",
		header: {
			token: uni.getStorageSync('userToken')
		},
		data: {
			type,
			collectorId,
			householdId,
			amount
		}
	})
	uni.hideLoading()
	if (err) {
		return {
			code: 5000,
			msg: 'request failed'
		}
	} else {
		return res.data
	}
}

/**
 * 返回所有停车区坐标及当前空闲数据
 * 接口地址：parking/zone/list
请求方式：GET
请求主体：无
请求示例：parking/zone/list
响应主体格式：json array，

 */

export let parkingZoneList = async () => {
	uni.showLoading({
		title: '查询中'
	})
	let [err, res] = await uni.request({
		url: BaseURL + 'parking/zone/list'
	})
	uni.hideLoading()
	if (err) {
		return {
			code: 5000,
			msg: 'request failed'
		}
	} else {
		return res.data
	}
}
